package A一周刷爆LeetCode.A基础班.I暴力递归;

import java.util.*;

/**
 * @author wei.zhao
 * @description: 递归逆序栈
 * @date 2022年04月19日 16:07
 */
public class Code04_ReverseStackUsingRecursive {

    public static void reverse(Stack<Integer> stack) {
        if (stack.isEmpty()) {
            return;
        }
        int last = getAndRemoveLastElement(stack);
        reverse(stack);
        stack.push(last);
    }

    /**
     * 获取并移除栈底元素
     */
    public static int getAndRemoveLastElement(Stack<Integer> stack) {
        Integer result = stack.pop();
        if (stack.isEmpty()) {
            return result;
        } else {
            int last = getAndRemoveLastElement(stack);
            stack.push(result);
            return last;
        }
    }

}

